package com.cloud.pole.shop.model.entity.order;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.validator.constraints.NotEmpty;

import lombok.Data;

/**
 * @author 
 */
@Table(name="shop_order_items")
@Data
public class ShopOrderItems implements Serializable {
	/**
	 * 评论状态（0：未评论 1：已评论）
	 */
	public static final int COMMENT_STATUS_NO = 0;
	public static final int COMMENT_STATUS_YES = 1;
	
	/**
	 * 退款状态 0:未退款; 1:部分退款中; 2:部分退款成功; 11:全额退款中; 12:全额退款成功
	 */
	public static final int REFUND_STATE_NO = 0;
	public static final int REFUND_STATE_PART_REFUND_ING = 1;
	public static final int REFUND_STATE_PART_REFUND_SUCCESS = 2;
	public static final int REFUND_STATE_ALL_REFUND_ING = 11;
	public static final int REFUND_STATE_ALL_REFUND_SUCCESS = 12;
	
    /**
     * 订单细览自增id
     */
    @Id
    private Long orderItemId;

    /**
     * 订单号
     */
    private String orderSn;

    /**
     * 商品id
     */
    private Integer goodsId;

    /**
     * 活动状态:10商城产品,20团购,30抢购
     */
    private Integer activityStatus;

    /**
     * 所购商品规格id
     */
    private Integer goodsSpecId;

    /**
     * 所购商品规格名称
     */
    private String goodsSpecName;

    /**
     * 所购商品规格说明
     */
    private String goodsSpecDescription;

    /**
     * 商品编码
     */
    private String goodsCode;

    /**
     * 商品数量
     */
    private Integer productNum;

    /**
     * 单价，单位为分
     */
    private Long unitPrice;

    /**
     * 合计总价(商品总价)，单位为分
     */
    private Long totalPrice;

    /**
     * 单件重量(g)
     */
    private Long unitWeight;

    /**
     * 合计重量(g)
     */
    private Long totalWeight;

    /**
     * 商品标题(长)
     */
    private String title;

    /**
     * 商品标题(短)
     */
    private String simpleTitle;

    /**
     * 商品名
     */
    private String goodsName;

    /**
     * 促销信息
     */
    private String salesPromotion;

    /**
     * 所属种类,应用分类编码
     */
    private String mkCategoryCode;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 产品图片
     */
    private String titleImage;

    /**
     * 商品介绍
     */
    private String content;

    /**
     * 移动端商品介绍
     */
    private String mobileContent;

    /**
     * 关键字
     */
    private String keyword;

    /**
     * 简介,也用于头部描述
     */
    private String description;

    /**
     * 服务承诺
     */
    private String serviceInfo;

    /**
     * 供货商家
     */
    private String merchant;

    /**
     * 商品属性集(每个元素用||包起 ,其中元素格式为属性ID-属性值,如:|1-圆领||2-短袖|)
     */
    private String attributes;

    /**
     * 商品类型:1普通产品,2赠品,3加价购商品
     */
    private Integer type;

    /**
     * 活动状态:10商城产品,20促销状态
     */
    private Integer goodsSpecActStatus;

    /**
     * 来源联盟，为空表示平台自建
     */
    private String unionCode;

    /**
     * 商品性质:1实物,2服务类商品
     */
    private Integer goodsNature;

    /**
     * 服务开始时间
     */
    private Date serviceStartTime;

    /**
     * 服务结束时间
     */
    private Date serviceEndTime;

    /**
     * 商品成本价
     */
    private Long merchantPrice;

    /**
     * 佣金计算状态(-1：生成失败0：待处理1：开始处理2：生成成功)
     */
    private Integer commiFlag;

    /**
     * 佣金计算时间
     */
    private Date commiTime;

    /**
     * 佣金计算说明
     */
    private String commiDesc;

    /**
     * 结算状态: 0未结算,1已结算
     */
    private Integer balanceStatus;

    /**
     * 结算时间
     */
    private Date balanceTime;

    /**
     * 结算说明
     */
    private String balanceNote;

    /**
     * 结算人
     */
    private String balanceUserId;
    
    /**
     * 评论状态
     */
    private Integer commentStatus;
    
    /**
     * 评论时间
     */
    private Date commentTime;
    
    /**
     * 退款状态 0:未退款; 1:部分退款中; 2:部分退款成功; 11:全额退款中; 12:全额退款成功
     */
    private Integer refundState;
    
    /**
     * 店铺id
     */
    private Integer shopId;

    /**
     * 店铺名称
     */
    private String shopName;

    /**
        * 仅支持付款方式（0：不限制 1：在线支付  2：到店支付 3：货到付款 ）
     */
    private Integer onlyPayMethod;
    
    /**
     * 商户ID
     */
    public Integer merchantId;
    
    private static final long serialVersionUID = 1L;
}